argPrzysp=0
argZwaln=0
predkosc=0 
tabelaWagonow={}
addEventHandler("onElementDestroy",root,
	function()
		usuwanieWagonu(source)
	end
)
addCommandHandler("usunwag",
	function()
		for k,v in ipairs(tabelaWagonow)do
			table.remove(tabelaWagonow,k)
			removeElementData(v,"wagon")
			if(getElementType(getVehicleOccupant(v,0))=="ped")then 
				destroyElement(getVehicleOccupant(v,0))
			end
			destroyElement(v)
		end
		oznajmianie(gracz,6)
	end
)
addCommandHandler("oznwag",
	function(gracz)
		local wagon=getPedOccupiedVehicle(gracz)
		if(getElementData(wagon,"wagon")=="tak")then 
			usuwanieWagonu(wagon)
			oznajmianie(gracz,4)
		else 
			setTrainSpeed(wagon,0)
			table.insert(tabelaWagonow,wagon)
			setElementData(wagon,"wagon","tak")
			local maszynista=createPed(0,0,0,0)
			setElementAlpha(maszynista,0)
			warpPedIntoVehicle(maszynista,wagon)
			setTrainDerailable(wagon,false)
			setVehicleDamageProof(wagon,true)
			setVehicleLocked(wagon,true)
			oznajmianie(gracz,0)
		end 
	end
)
function usuwanieWagonu(wagon)
	for k,v in ipairs(tabelaWagonow)do 
		if(v==wagon)then 
			table.remove(tabelaWagonow,k)
			removeElementData(wagon,"wagon")
			if(getElementType(getVehicleOccupant(wagon,0))=="ped")then 
				destroyElement(getVehicleOccupant(wagon,0))
			end
			destroyElement(v)
		end
	end
end 
addCommandHandler("stwag",
	function(gracz)
		if(argJazdy~=1)then 
			argJazdy=1 
			predkosc=0 
			oznajmianie(gracz,2)
		else 
			argJazdy=0 
			predkosc=0 
			oznajmianie(gracz,3)
		end 
		ustalaniePredkosci()
	end
)
setTimer(function()
		if(argJazdy==1)then 
			ustalaniePredkosci()
		end 
end,1000,0)
function ustalaniePredkosci()
	for k,v in ipairs(tabelaWagonow)do 
		if(getElementType(v)=="vehicle" and getVehicleType(v)=="Train")then 
			setTrainSpeed(v,predkosc)
		else 
			usuwanieWagonu(v)
		end 
	end 
end
addCommandHandler("byndy",
	function(gracz)
		oznajmianie(gracz,5)
	end
)
function wagonPrzysp(gracz)
	if(argJazdy==1)then 
		if(argZwaln==0)then
			argPrzysp=1
		end
	else 
		oznajmianie(gracz,1)
	end
end
function wagonPrzyspStop(gracz)
	argPrzysp=0
end
function wagonZwaln(gracz)
	if(argJazdy==1)then 
		if(argPrzysp==0)then
			argZwaln=1
		end
	else 
		oznajmianie(gracz,1)
	end
end
function wagonZwalnStop(gracz)
	argZwaln=0
end
setTimer(function()
	if(argJazdy==1)then
		if(argZwaln==1)and(argPrzysp==0)then
			if(predkosc>=1 or predkosc<=-1)then 
				predkosc=predkosc-0.3 
			elseif(predkosc>=0.5 or predkosc<=-0.5)then 
				predkosc=predkosc-0.1 
			else 
				predkosc=predkosc-0.05
			end 
		end
		if(argPrzysp==1)and(argZwaln==0)then
			if(predkosc>=1 or predkosc<=-1)then 
				predkosc=predkosc+0.3 
			elseif(predkosc>=0.5 or predkosc<=-0.5)then 
				predkosc=predkosc+0.1 
			else 
				predkosc=predkosc+0.05
			end 
		end
	end
end,1000,0)
function oznajmianie(gracz,nrKomunikatu)
	if(nrKomunikatu==0)then 
		komunikat="*** Dodano pociag/wagon. ***" 
	elseif(nrKomunikatu==1)then 
		komunikat="*** Pociag jeszcze nie ruszyl! ***" 
	elseif(nrKomunikatu==2)then 
		komunikat="*** Pociag moze ruszac! ***" 
	elseif(nrKomunikatu==3)then 
		komunikat="*** Pociag zatrzymany! ***"
	elseif(nrKomunikatu==4)then 
		komunikat="*** Usunieto pociag/wagon. ***"
	elseif(nrKomunikatu==5)then 
		komunikat="*** Bindowanie klawiszy: /trainbind A B, gdzie A - klawisz do przyspieszania i B - klawisz do zwalniania. ***"
	elseif(nrKomunikatu==6)then 
		komunikat="*** Wszystkie pociagi/wagony zostaly usuniete. ***"
	end 
	outputChatBox(komunikat,gracz,255,255,255)
end
addCommandHandler("trainbind",
	function(gracz,cmdname,klawisz1,klawisz2)
		bindKey(gracz,klawisz1,"down",wagonPrzysp)
		bindKey(gracz,klawisz1,"up",wagonPrzyspStop)
		bindKey(gracz,klawisz2,"down",wagonZwaln)
		bindKey(gracz,klawisz2,"up",wagonZwalnStop)
	end
)